//
//  XFRefreshSuperView.h
//  WorkManager
//
//  Created by ukongm on 17/1/7.
//  Copyright © 2017年 ukongm. All rights reserved.
//

#import <UIKit/UIKit.h>

@class XFRefreshSuperView;
@protocol XFRefreshViewDelegate <NSObject>

@optional


/**
 开始触发刷新的事件

 @param refreshView 触发的控件（header 或者 footer）
 */
- (void)refreshBeginWithView:(XFRefreshSuperView*)refreshView;

@end

typedef NS_ENUM(NSInteger,XFRefreshStatus) {
    XFRefreshStatusNormal = 0,//普通状态
    XFRefreshStatusRefreshing, //正在刷新状态
    XFRefreshStatusWillRefresh, // 将要开始刷新
    XFRefreshStatusPulling,//松开即可刷新的状态
    
};

typedef NS_ENUM(NSInteger , XFRefreshViewStyle) {
    XFRefreshViewStyleHeader = -1, //刷新视图
    XFRefreshViewStyleFooter = 1, //加载视图
    XFRefreshViewStyleSuper = 0, // 没有视图
};

@interface XFRefreshSuperView : UIView
{
    UIEdgeInsets _scrollViewInitSet; //保存控件一开始的值
}

/** 代理指针 */
@property(nonatomic,weak)id<XFRefreshViewDelegate> delegate;
/** 关联的滚动视图 */
@property(nonatomic,strong)UIScrollView* scrollView;
/** 状态 */
@property(nonatomic,assign,readonly)XFRefreshStatus status;

/**
 刚开始刷新的时候调用，比代理优先调用（ps：如果实现了block  就不会调用代理）
 */
@property(nonatomic,copy)void (^refreshBegin)(XFRefreshSuperView* refreshView);
/**
 设置状态的方法

 @param status 当前需要切换的状态
 */
- (void)setStatus:(XFRefreshStatus)status;

/**
 初始化方法
 
 @param scrollView 关联的滚视图
 
 @return headerView 对象
 */
- (instancetype)initWithScrollView:(UIScrollView*)scrollView;



/**
 开始触发事件
 */
- (void)beginRefreshing;

/**
 结束动画
 */
- (void)endRefreshing;

/**根据viewStyle返回该控件的位置*/
- (CGRect)frameWithStyle:(XFRefreshViewStyle)style andScrollView:(UIScrollView*)scrollView;


@end
